package Search.TreeSet;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

/**
 * @author : niu niu
 * @version : 1.0.0
 * @date : 2022/11/13 11:13
 * 底层是一种 红黑树
 */

public class Demo {
    static class C implements Comparator<String> {

        @Override
        public int compare(String o1, String o2) {
            return o1.compareTo(o2);
        }
    }

    public static void main(String[] args) {
        // Set<元素类型>
        // 元素类型：具备大小比较的能力 | Comparable or Comparator
        Set<String> set = new TreeSet<>();
        Set<String> set2 = new TreeSet<>(new C());

        System.out.println(set.add("hello"));
        System.out.println(set.add("hello"));
        System.out.println(set.size()); // 1
        System.out.println(set.add("world"));
        System.out.println(set.remove("hello"));
        System.out.println(set.size());
        for( String str : set){
            System.out.println(str);
        }


        TreeSet<Integer> s = new TreeSet<>();
        for (int i = 0; i < 10; i++) {
            s.add(i);
        }

        System.out.println(s.ceiling(5));   // 5
        System.out.println(s.higher(5));    // 6

        for (int i : s) {   // 这个背后就是迭代器（中序遍历）
            System.out.println(i);
        }
    }
}
